const {
    createServer
} = require("http");
const {
    Server
} = require("socket.io");

const httpServer = createServer();
const io = new Server(httpServer, {
    cors: { //解决跨域问题
        origin: "*",
        methods: ["GET", "POST"]
    }
});
// 用来存放用户的id
let users = {}
io.on("connection", (socket) => {
    console.log('建立链接');
    // 自定义接收消息事件


    // 服务器接收【注册】信息
    socket.on('login', (data) => {

        // 初始化数据
        let obj = {
            user: data,
            info: []
        }

        // 保存自己传进来的id
        socket.name = data.id

        // 每次进来都会生成一个唯一的id，保存在users中
        users[data.id] = socket.id;


        // io表示广播出去，发送给全部的连接
        io.emit('login', obj)
    })

    // 服务器接收【发送消息】信息
    socket.on('send', (id, data, user) => {

        // 修改数据
        data.user = user

        // 给指定的人发送消息
        socket.to(users[id]).emit('send', data)
    })

    // 用户离开
    socket.on("disconnecting", () => {
        // 向后端发送前端数据
        io.emit("leave", socket.name);
    });
});

httpServer.listen(3000, function () {
    console.log('http://127.0.0.1:3000')
});